// pages/home/device-list/device-list.js
const httpUtils = require('../../../utils/httpUtil')
Page({

  /**
   * 页面的初始数据
   */
  data: {
    devices: [],
    pageNum: 1,
    pageSize: 50,
    hasMore: true
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getDeviceList(this.data.pageNum, this.data.pageSize, false);
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.setData({
      pageNum: 1,
      hasMore: true
    });
    this.getDeviceList(this.data.pageNum, this.data.pageSize, false);
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    this.getDeviceList(this.data.pageNum, this.data.pageSize, true);
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  getDeviceList(pageNum, pageSize, loadMore) {
    httpUtils.request({
      'method': 'GET',
      'url': '/prod-api/device/device/deviceHomeData?pageNum='+pageNum+'&pageSize='+pageSize,
    }).then(res=>{
      if (res.data.code == 200) {
        if (res.data.rows.length > 0) {
          this.data.pageNum++;

          let result = res.data.rows.map(device=>{
            return {
              number: device.deviceUid,
              name: device.deviceName,
              type: this.getDeviceType(device.deviceType),
              area: device.dept ? device.dept.deptName : '未知',
              status: device.onlineStatus,
            }
          });
  
          this.setData({
            devices: loadMore ? this.data.devices.concat(result) : result,
          })

        } else {
          this.setData({
            hasMore: false
          });
        }
      }
      
      wx.stopPullDownRefresh();
    });
  },

  getDeviceType(type) {
    switch(type) {
      case 1:
        return '终端设备';
      case 1:
        return '软电话';
      case 1:
        return '村级设备';
    }
  }
})